<?xml version="1.0"?>
<Schema name="FDTCIPCommunicationSchema" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:fdt="x-schema:FDTDataTypesSchema.xml" xmlns:cip="x-schema:DTMCIPDataTypeSchema.xml">
	<!-- Version of the Schema -->
	<AttributeType name="schemaVersion" dt:type="number" default="1.0"/>
	<!--Definition of Attributes-->
	<AttributeType name="communicationReference" dt:type="uuid"/>
	<AttributeType name="statusCode" dt:type="ui1"/>
	<AttributeType name="extendedStatusCode" dt:type="bin.hex"/>
	<AttributeType name="sequenceTime" dt:type="ui4"/>
	<AttributeType name="delayTime" dt:type="ui4"/>
	<!--Definition of Elements-->
	<ElementType name="ServiceResponse" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="cip:serviceCode" required="yes"/>
		<attribute type="statusCode" required="yes"/>
		<attribute type="extendedStatusCode" required="no"/>
	</ElementType>
	<ElementType name="ConnectRequest" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<element type="cip:CIPPath" minOccurs="1" maxOccurs="1"/>
	</ElementType>
	<ElementType name="ConnectResponse" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="communicationReference" required="yes"/>
		<element type="cip:CIPDevice" minOccurs="1" maxOccurs="1"/>
	</ElementType>
	<ElementType name="DisconnectRequest" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="communicationReference" required="yes"/>
	</ElementType>
	<ElementType name="DisconnectResponse" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="communicationReference" required="yes"/>
	</ElementType>
	<ElementType name="DataExchangeRequest" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="communicationReference" required="yes"/>
		<attribute type="cip:serviceCode" required="yes"/>
		<element type="cip:CIPObjectAddress"/>
		<element type="fdt:CommunicationData" minOccurs="0" maxOccurs="1"/>
	</ElementType>
	<ElementType name="DataExchangeResponse" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="communicationReference" required="yes"/>
		<element type="ServiceResponse" minOccurs="1" maxOccurs="1"/>
		<element type="fdt:CommunicationData" minOccurs="0" maxOccurs="1"/>
	</ElementType>
	<ElementType name="SequenceBegin" content="empty" model="closed">
	  <attribute type="fdt:nodeId" required="no"/>
		<attribute type="sequenceTime" required="no"/>
		<attribute type="delayTime" required="no"/>
		<attribute type="communicationReference" required="yes"/>
	</ElementType>
	<ElementType name="SequenceEnd" content="empty" model="closed">
	  <attribute type="fdt:nodeId" required="no"/>
		<attribute type="communicationReference" required="yes"/>
	</ElementType>
	<ElementType name="SequenceStart" content="empty" model="closed">
	  <attribute type="fdt:nodeId" required="no"/>
		<attribute type="communicationReference" required="yes"/>
	</ElementType>
	<ElementType name="Abort" content="empty" model="closed">
	  <attribute type="fdt:nodeId" required="no"/>
    <attribute type="communicationReference" required="yes"/>
	</ElementType>
	<ElementType name="FDT" content="eltOnly" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<group order="one" minOccurs="1" maxOccurs="1">
			<element type="ConnectRequest"/>
			<element type="ConnectResponse"/>
			<element type="DisconnectRequest"/>
			<element type="DisconnectResponse"/>
			<element type="DataExchangeRequest"/>
			<element type="DataExchangeResponse"/>
			<element type="SequenceBegin"/>
			<element type="SequenceEnd"/>
			<element type="SequenceStart"/>
			<element type="Abort"/>
			<element type="fdt:CommunicationError"/>
		</group>
	</ElementType>
</Schema>
